# 1.完成下列功能:
#
# 创建一个人类Person,再类中创建3个静态变量(静态字段)
# animal = '高级动物'
# soul = '有灵魂'
# language = '语言'
# 在类中定义三个方法,吃饭,睡觉,工作.
# 在此类中的__init__方法中,给对象封装5个属性:国家,姓名,性别,年龄, 身高.
# 实例化四个人类对象:
# 第一个人类对象p1属性为:中国,alex,未知,42,175.
# 第二个人类对象p2属性为:美国,武大,男,35,160.
# 第三个人类对象p3属性为:你自己定义.
# 第四个人类对象p4属性为:p1的国籍,p2的名字,p3的性别,p2的年龄,p3的身高.
# 通过p1对象执行吃饭方法,方法里面打印:alex在吃饭.
# 通过p2对象执行吃饭方法,方法里面打印:武大在吃饭.
# 通过p3对象执行吃饭方法,方法里面打印:(p3对象自己的名字)在吃饭.
# 通过p1对象找到Person的静态变量 animal
# 通过p2对象找到Person的静态变量 soul
# 通过p3对象找到Person的静态变量 language
'''
class Person:
    animal = '高级动物'
    soul = '有灵魂'
    language = '语言'
    def __init__(self, country, name, sex, age, height):
        self.country = country
        self.name = name
        self.sex = sex
        self.age = age
        self.height = height

    def eat(self):
        print(f'{self.name}在吃饭')

    def sleep(self):
        print('在睡觉')

    def week(self):
        print('工作')

p1 = Person('中国', 'alex', '未知', 42, 175)
p2 = Person('美国', '武大', '男', 35, 160)
p3 = Person('中国', '小明', '男', 10, 150)
p4 = Person('中国', '武大', '男', 35, 150)

p1.eat()
p2.eat()
p3.eat()

print(p1.animal)
print(p2.soul)
print(p3.language)
'''

# 2.通过自己创建类,实例化对象
# 在终端输出如下信息
# 小明，10岁，男，上山去砍柴,丢了
# 小明，10岁，男，开车去东北,丢了
# 小明，10岁，男，最爱唱跳篮球,丢了
# 老李，90岁，男，上山去砍柴,丢了
# 老李，90岁，男，开车去东北,丢了
# 老李，90岁，男，最爱衣柜,丢了
'''
class Human:
    chop_wood = '上山去砍柴,丢了'
    car = '开车去东北,丢了'

    def __init__(self, name, age, sex):
        self.name = name
        self.age = age
        self.sex = sex

    def func(self):
        print(f'{self.name},{self.age},{self.sex},{self.chop_wood}')
        print(f'{self.name},{self.age},{self.sex},{self.car}')
        print(f'{self.name},{self.age},{self.sex},最爱唱跳篮球,丢了')

    def foo(self):
        print(f'{self.name},{self.age},{self.sex},{self.chop_wood}')
        print(f'{self.name},{self.age},{self.sex},{self.car}')
        print(f'{self.name},{self.age},{self.sex},最爱衣柜,丢了')

p = Human('小明', 10, '男')
p.func()
q = Human('老李', 90, '男')
q.foo()
'''

# 3.设计一个汽车类。
# 要求：
# 汽车的公共属性为：动力驱动，具有四个或以上车轮，主要用途载运人员或货物。
# 汽车的功能：run,transfer.
# 具体的汽车的不同属性：颜色，车牌，类型（越野，轿车，货车等)。
'''
class Car:
    Power_drive = '会跑'
    wheel = '四个轮子'
    purpose = '载物'
    def __init__(self, colour, plate, typ):
        self.colour = colour
        self.plate = plate
        self.typ = typ

    def run(self):
        pass

    def transfer(self):
        pass
'''
# 4.模拟英雄联盟写一个游戏人物的类（升级题).
# 要求:
#
# 1.创建一个 Game_role的类.
# 2.构造方法中给对象封装name,ad(攻击力),hp(血量).三个属性.
# 3.创建一个attack方法,此方法是实例化两个对象,互相攻击的功能:
# 例: 实例化一个对象 盖伦,ad为10, hp为100
# 实例化另个一个对象 剑豪 ad为20, hp为80
# 盖伦通过attack方法攻击剑豪,此方法要完成 '谁攻击谁,谁掉了多少血, 还剩多少血'的提示功能.
'''
class Gamerole:
    add = '召唤师峡谷'

    def __init__(self, name, ad, hp):
        self.name = name
        self.ad = ad
        self.hp = hp

    def attack(self, a):
        return f'{self.name}攻击了{a.name}'

p1 = Gamerole('盖伦', 10, 100)
p2 = Gamerole('亚索', 20, 80)
print(f'{p1.attack(p2)},掉了{p1.ad}血,还剩{p2.hp - p1.ad}')
'''
